<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 函数名和变量名重复的时候，还是会覆盖
        //    先提升var , 后提升具名函数

        

        // function f() {
        //     console.log(3);
        // }

        // f() ;

        // var f = 2 ;

        // f++ ;

        // console.log(f);


        

        // 你看到的代码

        // function fn() {
        //     console.log(add);
        //     var add = 3 ;
        //     x++ ;
        // }

        // function add() {
        //     console.log(x); 
        // }

        // var x = 3 ;

        // add() ;

        // x++ ;

        // fn() ;

        // console.log(x);



        // 真正的执行顺序

        var x ;
        function fn() {
            var add ;
            console.log(add);
            add = 3 ;
            x++ ;
        }
        function add() {
            console.log(x);
        }

        x = 3 ;

        add() ;    // 3

        x++ ;   

        fn() ;   // undefined  

        console.log(x);   // 5

        console.log(add);   // 打印整个函数


    </script>
    
</body>
</html>